package peace.util
{
import flash.text.TextField;
import flash.text.TextFormat;
/**
 * 
 * @author peace
 * 
 */	
public class Strings
{
	// Регулярки
	public static const URL_HTTP_REGEXP:RegExp = /(ftp|http|https):\/\/((\w|\d|[#!:.?+=&%@!\-\/])+)/gmsi;	
//	public static const URL_WWW_REGEXP:RegExp = /[^((ftp|http|https):\/\/)]www.((\w|\d|[#!:.?+=&%@!\-\/])+)/gmsi;	
	public static const URL_WWW_REGEXP:RegExp = /www.((\w|\d|[#!:.?+=&%@!\-\/])+)/gmsi;	
	
	public static function trim (s:String):String
	{
		return s.replace(/^\s+|\s+$/g, "");
	}
	/**
	 * Обрезаем текст в поле до нужного размера с добавлением стандартных "..."
	 *  
	 * @param s исходный текст
	 * @param width необходимая ширина
	 * @param format 
	 * @param dots шрам после обрезания
	 * 
	 * @return результирующий текст
	 */
	public static function truncateToFit (s:String, width:int, format:TextFormat, dots:String = "..."):String
	{
		// 4 - базовый отступ в текстовом поле
		width -= 4;
		
		var t:TextField = new TextField();
		t.defaultTextFormat = format;
		t.text = s;
		
		// если не о чем говорить
		if (t.textWidth <= width) return s;

		t.text = s + dots;
		
		s = s.slice(0, int (width / t.textWidth * s.length));
		s = s + dots;
		
		return s;
	}
	
	
}	
}